{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9f485779",
   "metadata": {},
   "source": [
    "# 项目名称 简易表单与购物车系统\n",
    "### <b>开发者用开发者利用flask框架搭建了简易的表单实现和购物车系统，为刚接触Python语言，并想尝试构建Python Flask网站的初学者提供一个代码参考，让初学者自己动手，更显而易见的知道Python Flask框架的基本结构和框架，并可在原代码的基础上运用Python知识，搭建属于自己的Python Flask网站。最终目的是帮助初学者更好的学习、掌握和运用python知识。</b>\n",
    "![image.png](https://s2.loli.net/2021/12/29/yFCWxumYzoinMcO.png)\n",
    "\n",
    "## 问题表述\n",
    "### 在这个大数据的时代,我们要想走在潮流前端,就必须要学习前沿有用的知识。而今人工智和数据分析爆炸，python就是一颗冉冉升起的新星。相比于其他编程语言（java、C语言等），python开发效率更高、运行速度更快，功能更加强大！WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架，短小精悍的flask,bottle, Django官方的标语把Django定义为the framework for perfectionist with deadlines。而该Python项目给初学者提供了一个能把所学python知识运用到一个具体的项目当中的形式和对所学知识的检验和运用，并在此过程中更深入了解Python Flask网站的基本流程、形成自己个人的编程思维和遇到问题并独立解决问题的能力等。该Python项目主要为Python Flask-web表单与购物车系统这两个方面，实现了Python Flask-web表当中的名字全称拼写、元音字母统计和购物车的基本实现形式。学习者可在该网站基础上修改代码样式和个人觉得不合理的地方等，同时也可以添加新的内容进去，例如除了该网站现有的两个表单还有其他的表单，可以尝试实现它们。购物车系统只是很简单的把商品加入购物车，只能进行简单的移除和添加，不能进行购物车结算，有能力的话也可以在该基础上添加购物车结算页面和购物车商品的具体信息页面等，这也是该项目的几个不足之处。\n",
    "## 解决方案表述\n",
    "### 该项目的初衷就是给初学者一个实践形式，学习和检验自己的python学习成果。\n",
    "### 以下是该项目的编程语言比例\n",
    "![image.png](https://s2.loli.net/2021/12/29/2FSrUHf4DMRVtOh.png)\n",
    "### 以下是该项目运用到的python基础知识比例\n",
    "![image.png](https://s2.loli.net/2021/12/29/3Er1nfVKpXFyxTA.png)\n",
    "\n",
    "## 核心功能\n",
    "* 名字全称应用（25%）\n",
    "* 元音字母词频统计（25%）\n",
    "* 购物车（35%）\n",
    "* 课程表 (15%)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9204be33",
   "metadata": {},
   "source": [
    "## 编程功能的基本描述\n",
    "(1)该项目具体实践思路：网站内容--》网页首页四个按钮【GET】--》通过按钮实现页面跳转相应页面【GET】--》跳转页面呈现【POST】--》优化代码--》解决bug<br>\n",
    "(2)初学者所需要付出的学习成本：6hours<br>\n",
    "(3)项目搭建具体过程<br>\n",
    "* 导入flask库，建立相对应的文件夹，<b>html文件放在templates文件夹下，js、css和img等文件放在static文件夹下</b>\n",
    "![image.png](https://s2.loli.net/2021/12/29/NSwXoQq2lYVP4Kb.png)\n",
    "* 在app.py登记路由【路径】 render_template后面匹配你所对应的html文件名，'/'为首页\n",
    "![image.png](https://s2.loli.net/2021/12/29/URlwGd8tVbuB1E4.png)\n",
    "* 然后在网站首页的HTML声明相对应的跳转路径\n",
    "![image.png](https://s2.loli.net/2021/12/29/8o6O45mU9FywzQ1.png)\n",
    "* 名字全称拼写的【POST】结果页需要在app.py里面渲染表单\n",
    "![image.png](https://s2.loli.net/2021/12/29/skW2lbOKya7udY4.png)\n",
    "* 元音字母统计同样是如此<br>\n",
    "![image.png](https://s2.loli.net/2021/12/29/F5SMBHjNcqZYQV3.png)\n",
    "* 购物车系统有两个页面，一个是用户登入页面，另外一个是购物车页面 具体html代码请看项目\n",
    "![image.png](https://s2.loli.net/2021/12/29/1JATsybEeQBYxoz.png)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60640bba",
   "metadata": {},
   "source": [
    "(4)项目用到的具体知识点<br>\n",
    "* A.程序的格式框架框架。<b>缩进</b>当表示分支、循环、函数、类等含义，在if，while，for，def，class等保留字所在的完整语句后通过英文冒号（：）结尾，并在之后进行缩进，表示前后代码之间的从属关系。代码编写中，缩进可以用Tab键实现。<b>注释</b>【#】快捷键 CTRL+/\n",
    "* B.语法元素的名称。<b>.变量</b>变量是保存和表示数据值的一种语法元素。变量的值可以通过赋值（\"=\"）方式修改。<b>命名</b>Python采用大写字母，小写字母，数字，下划线，汉字等字符进行组合命名。<b>注意：</b>（1）首字符不能是数字；（2）标识符不能出现空格；（3）标识符不能与Python保留字相同；（4）对大小写敏感；\n",
    "* python常用函数。在python中定义一个函数需要使用def关键字，相比其他语言，返回值不需要声明。python其他具体知识点请参考[python](http://c.biancheng.net/python/)\n",
    "* html5的各种标签的运用，详情请参考[菜鸟教程](https://www.runoob.com/)\n",
    "* Flask基础程序的运用,详情请参考[Bootviki](https://www.bootwiki.com/flask/flask-application.html)\n",
    "## 学习/实践心得总结及感谢\n",
    "### 自己本身仍然为一名初学者，这个python项目对我来说是一个挑战。我在经历了长时间的探索和打磨，恶补了大量专业名词和知识，最终才做成了这个在内行人眼里稍显幼稚简单的网站。我也在这个过程中，收获了许多实践的经验和意志锻炼。在做一个项目之前，必须要拥有专业的基础知识作为基石，这样有利于在后续的编写中事半功倍。最后，感谢社区大佬的无私分享和来自同学和老师的帮助。在此附上他们的url以示尊敬:\n",
    "* [w3school](https://www.w3school.com.cn/html/html_quotation_elements.asp)\n",
    "* [菜鸟教程](https://www.runoob.com/w3cnote/html-import-css-method.html)\n",
    "* [bootwiki教程](https://www.bootwiki.com/flask/flask-http-methods.html)\n",
    "* [智超老师博客](https://www.cnblogs.com/xuzhichao)\n",
    "* [csdn社区](https://www.csdn.net/)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f67f7ca2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}